D:\git\skunkworks\herald-for-cpp\herald\include\herald\analysis\aggregates.h
Line | Count | Source (jump to first uncovered line) |
1 | | // Copyright 2021 Herald Project Contributors |
2 | | // SPDX-License-Identifier: Apache-2.0 |
3 | | // |
4 | | |
5 | | #ifndef HERALD_AGGREGATES_H |
6 | | #define HERALD_AGGREGATES_H |
7 | | |
8 | | #include <map> |
9 | | #include <variant> |
10 | | #include <vector> |
11 | | // #include <iostream> |
12 | | |
13 | | #include "ranges.h" |
14 | | |
15 | | namespace herald { |
16 | | namespace analysis { |
17 | | namespace aggregates { |
18 | | |
19 | | struct Count { |
20 | | static constexpr int runs = 1; |
21 | | |
22 | 9 | Count() : count(0) {} |
23 | | ~Count() = default; |
24 | | |
25 | 18 | void beginRun(int thisRun) { // 1 indexed |
26 | 18 | run = thisRun; |
27 | 18 | } |
28 | | |
29 | | template <typename ValT> |
30 | 46 | void map(ValT value) { |
31 | 46 | if (run > 1) return23 ; // performance enhancement |
32 | 23 | |
33 | 23 | ++count; |
34 | 23 | } |
35 | | |
36 | 9 | double reduce() { |
37 | 9 | return count; |
38 | 9 | } |
39 | | |
40 | 0 | void reset() { |
41 | 0 | count = 0; |
42 | 0 | } |
43 | | |
44 | | private: |
45 | | int count; |
46 | | int run; |
47 | | }; |
48 | | |
49 | | struct Mean { |
50 | | static constexpr int runs = 1; |
51 | | |
52 | 3 | Mean() : count(0), run(1), sum(0.0) {} |
53 | | ~Mean() = default; |
54 | | |
55 | 6 | void beginRun(int thisRun) { // 1 indexed |
56 | 6 | run = thisRun; |
57 | 6 | } |
58 | | |
59 | | template <typename ValT> |
60 | 20 | void map(ValT value) { |
61 | 20 | if (run > 1) return10 ; // performance enhancement |
62 | 10 | |
63 | 10 | sum += (double)value; |
64 | 10 | ++count; |
65 | 10 | } |
66 | | |
67 | 3 | double reduce() { |
68 | 3 | return sum / count; |
69 | 3 | } |
70 | | |
71 | 0 | void reset() { |
72 | 0 | count = 0; |
73 | 0 | sum = 0.0; |
74 | 0 | } |
75 | | |
76 | | private: |
77 | | int count; |
78 | | int run; |
79 | | double sum; |
80 | | }; |
81 | | |
82 | | struct Mode { |
83 | | static constexpr int runs = 1; |
84 | | |
85 | 26 | Mode() : run(1), counts() {} |
86 | 117 | ~Mode() = default; |
87 | | |
88 | 34 | void beginRun(int thisRun) { // 1 indexed |
89 | 34 | run = thisRun; |
90 | 34 | } |
91 | | |
92 | | template <typename ValT> |
93 | 110 | void map(ValT value) { |
94 | 110 | if (run > 1) return33 ; // performance enhancement |
95 | 77 | |
96 | 77 | double dv = (double)value; |
97 | 77 | auto ptr = counts.find(dv); |
98 | 77 | if (counts.end() == ptr) { |
99 | 30 | counts.emplace(dv,1); |
100 | 47 | } else { |
101 | 47 | ++(ptr->second); |
102 | 47 | } |
103 | 77 | } |
104 | | |
105 | 21 | double reduce() { |
106 | 21 | // loop through map once and find largest |
107 | 21 | double largest = 0; |
108 | 21 | int largestCount = 0; |
109 | 51 | for (auto iter = counts.begin();iter != counts.end();++iter30 ) { |
110 | 30 | if (iter->second > largestCount) { |
111 | 20 | largestCount = iter->second; |
112 | 20 | largest = iter->first; |
113 | 20 | } |
114 | 30 | } |
115 | 21 | return largest; |
116 | 21 | } |
117 | | |
118 | 9 | void reset() { |
119 | 9 | counts.clear(); |
120 | 9 | } |
121 | | |
122 | | private: |
123 | | int run; |
124 | | std::map<double,int> counts; // value converted to double, and int count for each |
125 | | }; |
126 | | |
127 | | struct Variance { |
128 | | static constexpr int runs = 2; |
129 | | |
130 | 12 | Variance() : count(0), run(1), sum(0.0), mean(0.0) {} |
131 | | ~Variance() = default; |
132 | | |
133 | 24 | void beginRun(int thisRun) { // 1 indexed |
134 | 24 | run = thisRun; |
135 | 24 | if (2 == run) { |
136 | 12 | // initialise mean |
137 | 12 | mean = sum / count; |
138 | 12 | // reinitialise counters |
139 | 12 | sum = 0.0; |
140 | 12 | count = 0; |
141 | 12 | } |
142 | 24 | } |
143 | | |
144 | | template <typename ValT> |
145 | 66 | void map(ValT value) { |
146 | 66 | double dv = (double)value; |
147 | 66 | if (1 == run) { |
148 | 33 | sum += dv; |
149 | 33 | } else { |
150 | 33 | // 2 === run |
151 | 33 | sum += (dv - mean)*(dv - mean); |
152 | 33 | } |
153 | 66 | ++count; |
154 | 66 | } |
155 | | |
156 | 11 | double reduce() { |
157 | 11 | if (count < 1) { |
158 | 0 | return 0.0; // div by zero check |
159 | 0 | } |
160 | 11 | return sum / (count - 1); // Sample variance |
161 | 11 | } |
162 | | |
163 | 0 | void reset() { |
164 | 0 | count = 0; |
165 | 0 | run = 1; |
166 | 0 | sum = 0.0; |
167 | 0 | mean = 0.0; |
168 | 0 | } |
169 | | |
170 | | private: |
171 | | int count; |
172 | | int run; |
173 | | double sum; |
174 | | double mean; |
175 | | }; |
176 | | |
177 | | |
178 | | struct Median { |
179 | | static constexpr int runs = 1; |
180 | | |
181 | 0 | Median() : run(1), minNextPos(0), maxNextPos(0), minHeap(), maxHeap() {} |
182 | | ~Median() = default; |
183 | | |
184 | 0 | void beginRun(int thisRun) { |
185 | 0 | run = thisRun; |
186 | 0 | } |
187 | | |
188 | | template <typename ValT> |
189 | | void map(ValT value) { |
190 | | if (run > 1) { |
191 | | return; |
192 | | } |
193 | | double dv = (double)value; |
194 | | if (minNextPos == maxNextPos) { |
195 | | if (10 == maxNextPos) { |
196 | | removeLeast(maxHeap,maxNextPos); |
197 | | } |
198 | | maxHeap[maxNextPos++] = dv; |
199 | | if (10 == minNextPos) { |
200 | | removeMost(minHeap,minNextPos); |
201 | | } |
202 | | minHeap[minNextPos++] = maxHeap[leastIndex(maxHeap,maxNextPos)]; |
203 | | } else { |
204 | | if (10 == minNextPos) { |
205 | | removeMost(minHeap,minNextPos); |
206 | | } |
207 | | minHeap[minNextPos++] = dv; |
208 | | if (10 == maxNextPos) { |
209 | | removeLeast(maxHeap,maxNextPos); |
210 | | } |
211 | | maxHeap[maxNextPos++] = minHeap[mostIndex(minHeap,minNextPos)]; |
212 | | } |
213 | | } |
214 | | |
215 | 0 | double reduce() { |
216 | 0 | if (0 == minNextPos && 0 == maxNextPos) { |
217 | 0 | return 0.0; // empty data check |
218 | 0 | } |
219 | 0 | if (minNextPos > maxNextPos) { |
220 | 0 | return minHeap[leastIndex(minHeap,minNextPos)]; |
221 | 0 | } |
222 | 0 | return (minHeap[leastIndex(minHeap,minNextPos)] + maxHeap[mostIndex(maxHeap,maxNextPos)]) / 2.0; |
223 | 0 | } |
224 | | |
225 | 0 | void reset() { |
226 | 0 | run = 1; |
227 | 0 | minNextPos = 0; |
228 | 0 | maxNextPos = 0; |
229 | 0 | } |
230 | | |
231 | | |
232 | | private: |
233 | | int run; |
234 | | int minNextPos; |
235 | | int maxNextPos; |
236 | | std::array<double,10> minHeap; |
237 | | std::array<double,10> maxHeap; |
238 | | |
239 | 0 | int leastIndex(const std::array<double,10>& from, const int fromNextPos) const { |
240 | 0 | int leastIdx = 0; |
241 | 0 | double least = from[0]; |
242 | 0 | for (int i = 1;i < fromNextPos;++i) { |
243 | 0 | if (from[i] < least) { |
244 | 0 | least = from[i]; |
245 | 0 | leastIdx = i; |
246 | 0 | } |
247 | 0 | } |
248 | 0 | return leastIdx; |
249 | 0 | } |
250 | | |
251 | 0 | int mostIndex(const std::array<double,10>& from, const int fromNextPos) const { |
252 | 0 | int mostIdx = 0; |
253 | 0 | double most = from[0]; |
254 | 0 | for (int i = 1;i < fromNextPos;++i) { |
255 | 0 | if (from[i] > most) { |
256 | 0 | most = from[i]; |
257 | 0 | mostIdx = i; |
258 | 0 | } |
259 | 0 | } |
260 | 0 | return mostIdx; |
261 | 0 | } |
262 | | |
263 | 0 | void removeMost(std::array<double,10>& from, int& fromNextPos) { |
264 | 0 | int mostIdx = mostIndex(from,fromNextPos); |
265 | 0 | for (int i = mostIdx; i < fromNextPos - 1;++i) { |
266 | 0 | from[i] = from[i + 1]; |
267 | 0 | } |
268 | 0 | --fromNextPos; |
269 | 0 | } |
270 | | |
271 | 0 | void removeLeast(std::array<double,10>& from, int& fromNextPos) { |
272 | 0 | int leastIdx = leastIndex(from,fromNextPos); |
273 | 0 | for (int i = leastIdx; i < fromNextPos - 1;++i) { |
274 | 0 | from[i] = from[i + 1]; |
275 | 0 | } |
276 | 0 | --fromNextPos; |
277 | 0 | } |
278 | | }; |
279 | | |
280 | | |
281 | | /// Gaussian |
282 | | struct Gaussian { |
283 | | static constexpr int runs = 1; |
284 | | |
285 | 3 | Gaussian() : run(1), distribution() {} |
286 | | ~Gaussian() = default; |
287 | | |
288 | 0 | void beginRun(int thisRun) { |
289 | 0 | run = thisRun; |
290 | 0 | } |
291 | | |
292 | | template <typename ValT> |
293 | 11 | void map(ValT value) { |
294 | 11 | if (run > 1) { |
295 | 0 | return; |
296 | 0 | } |
297 | 11 | double dv = (double)value; |
298 | 11 | distribution.add(dv); |
299 | 11 | } ??$map@U?$Sample@C@sampling@analysis@herald@@@Gaussian@aggregates@analysis@herald@@QEAAXU?$Sample@C@sampling@23@@Z Line | Count | Source | 293 | 10 | void map(ValT value) { | 294 | 10 | if (run > 1) { | 295 | 0 | return; | 296 | 0 | } | 297 | 10 | double dv = (double)value; | 298 | 10 | distribution.add(dv); | 299 | 10 | } |
??$map@U?$Sample@H@sampling@analysis@herald@@@Gaussian@aggregates@analysis@herald@@QEAAXU?$Sample@H@sampling@23@@Z Line | Count | Source | 293 | 1 | void map(ValT value) { | 294 | 1 | if (run > 1) { | 295 | 0 | return; | 296 | 0 | } | 297 | 1 | double dv = (double)value; | 298 | 1 | distribution.add(dv); | 299 | 1 | } |
|
300 | | |
301 | 13 | double reduce() { |
302 | 13 | return distribution.mean(); |
303 | 13 | } |
304 | | |
305 | 1 | void reset() { |
306 | 1 | run = 1; |
307 | 1 | distribution.reset(); |
308 | 1 | } |
309 | | |
310 | 9 | const Distribution& model() const { |
311 | 9 | return distribution; |
312 | 9 | } |
313 | | |
314 | | private: |
315 | | int run; |
316 | | Distribution distribution; |
317 | | }; |
318 | | |
319 | | |
320 | | |
321 | | |
322 | | |
323 | | /// A Variadic aggregation function requiring aggregations to be prior initialised (i.e. configured) |
324 | | |
325 | | template <typename... Aggs> |
326 | | struct aggregate { |
327 | 11 | aggregate(Aggs... configuredAggregates) : aggregates() { |
328 | 11 | addAggregate<Aggs...>(configuredAggregates...); |
329 | 11 | } ??0?$aggregate@UFowlerBasic@distance@algorithms@analysis@herald@@@aggregates@analysis@herald@@QEAA@UFowlerBasic@distance@algorithms@23@@Z Line | Count | Source | 327 | 10 | aggregate(Aggs... configuredAggregates) : aggregates() { | 328 | 10 | addAggregate<Aggs...>(configuredAggregates...); | 329 | 10 | } |
??0?$aggregate@URiskAggregationBasic@risk@algorithms@analysis@herald@@@aggregates@analysis@herald@@QEAA@URiskAggregationBasic@risk@algorithms@23@@Z Line | Count | Source | 327 | 1 | aggregate(Aggs... configuredAggregates) : aggregates() { | 328 | 1 | addAggregate<Aggs...>(configuredAggregates...); | 329 | 1 | } |
|
330 | 42 | ~aggregate() = default; ??1?$aggregate@UFowlerBasic@distance@algorithms@analysis@herald@@@aggregates@analysis@herald@@QEAA@XZ Line | Count | Source | 330 | 20 | ~aggregate() = default; |
??1?$aggregate@URiskAggregationBasic@risk@algorithms@analysis@herald@@@aggregates@analysis@herald@@QEAA@XZ Line | Count | Source | 330 | 22 | ~aggregate() = default; |
|
331 | | |
332 | | template <typename SampleListT, |
333 | | typename SampleT = typename std::remove_cv<typename SampleListT::value_type>::type, |
334 | | typename ValT = typename std::remove_cv<typename SampleT::value_type>::type, |
335 | | std::size_t MaxSize = SampleListT::max_size |
336 | | > |
337 | 11 | friend auto operator|(SampleListT& from, aggregate<Aggs...> me) -> aggregate<Aggs...> { |
338 | 11 | // determine number of runs |
339 | 11 | int maxRuns = 1; |
340 | 11 | for (auto& agg : me.aggregates) { |
341 | 11 | std::visit([&maxRuns](auto&& arg) { |
342 | 11 | if (arg.runs > maxRuns) { |
343 | 0 | maxRuns = arg.runs; |
344 | 0 | } |
345 | 11 | }, agg); |
346 | 11 | } |
347 | 11 | |
348 | 11 | // loop over all incoming data, calling each aggregate each time |
349 | 22 | for (int run = 1;run <= maxRuns;run++11 ) { |
350 | 11 | for (auto& agg : me.aggregates) { |
351 | 11 | std::visit([&run](auto&& arg) { |
352 | 11 | arg.beginRun(run); |
353 | 11 | // std::cout << "Beggining run " << run << std::endl; |
354 | 11 | }, agg); |
355 | 11 | } |
356 | 11 | |
357 | 19 | for (auto& v : from) { |
358 | 19 | for (auto& agg : me.aggregates) { |
359 | 19 | std::visit([&v](auto&& arg) { |
360 | 19 | // std::cout << "Sample taken: " << v.taken.secondsSinceUnixEpoch() << std::endl; |
361 | 19 | arg.map(v); |
362 | 19 | }, agg); |
363 | 19 | } |
364 | 19 | } |
365 | 11 | } |
366 | 11 | |
367 | 11 | // return me so we can then do get<Agg>() |
368 | 11 | return me; |
369 | 11 | } |
370 | | |
371 | | template <typename Coll, typename Pred> |
372 | 10 | friend auto operator|(herald::analysis::views::filtered_iterator_proxy<Coll,Pred> from, aggregate<Aggs...> me) -> aggregate<Aggs...> { |
373 | 10 | // determine number of runs |
374 | 10 | int maxRuns = 1; |
375 | 10 | for (auto& agg : me.aggregates) { |
376 | 10 | std::visit([&maxRuns](auto&& arg) { |
377 | 10 | if (arg.runs > maxRuns) { |
378 | 0 | maxRuns = arg.runs; |
379 | 0 | } |
380 | 10 | }, agg); ??$?RAEAUFowlerBasic@distance@algorithms@analysis@herald@@@<lambda_1>@?0???$?UU?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$dual_filter@U?$dual_filter@Usince@views@analysis@herald@@U?$in_range@H@234@@views@analysis@herald@@U?$less_than@H@234@@views@analysis@herald@@U?$in_range@N@234@@views@23@@aggregates@analysis@herald@@YA?AU?$aggregate@UFowlerBasic@distance@algorithms@analysis@herald@@@123@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$dual_filter@U?$dual_filter@Usince@views@analysis@herald@@U?$in_range@H@234@@views@analysis@herald@@U?$less_than@H@234@@views@analysis@herald@@U?$in_range@N@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@23@U4123@@Z@QEBA?A?<auto>@@AEAUFowlerBasic@distance@algorithms@23@@Z Line | Count | Source | 376 | 2 | std::visit([&maxRuns](auto&& arg) { | 377 | 2 | if (arg.runs > maxRuns) { | 378 | 0 | maxRuns = arg.runs; | 379 | 0 | } | 380 | 2 | }, agg); |
??$?RAEAUFowlerBasic@distance@algorithms@analysis@herald@@@<lambda_1>@?0???$?UU?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@U?$in_range@N@234@@views@23@@aggregates@analysis@herald@@YA?AU?$aggregate@UFowlerBasic@distance@algorithms@analysis@herald@@@123@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@U?$in_range@N@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@23@U4123@@Z@QEBA?A?<auto>@@AEAUFowlerBasic@distance@algorithms@23@@Z Line | Count | Source | 376 | 8 | std::visit([&maxRuns](auto&& arg) { | 377 | 8 | if (arg.runs > maxRuns) { | 378 | 0 | maxRuns = arg.runs; | 379 | 0 | } | 380 | 8 | }, agg); |
|
381 | 10 | } |
382 | 10 | |
383 | 10 | // loop over all incoming data, calling each aggregate each time |
384 | 20 | for (int run = 1;run <= maxRuns;run++10 ) { |
385 | 10 | for (auto& agg : me.aggregates) { |
386 | 10 | std::visit([&run](auto&& arg) { |
387 | 10 | arg.beginRun(run); |
388 | 10 | // std::cout << "Beggining run " << run << std::endl; |
389 | 10 | }, agg); ??$?RAEAUFowlerBasic@distance@algorithms@analysis@herald@@@<lambda_2>@?0???$?UU?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$dual_filter@U?$dual_filter@Usince@views@analysis@herald@@U?$in_range@H@234@@views@analysis@herald@@U?$less_than@H@234@@views@analysis@herald@@U?$in_range@N@234@@views@23@@aggregates@analysis@herald@@YA?AU?$aggregate@UFowlerBasic@distance@algorithms@analysis@herald@@@123@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$dual_filter@U?$dual_filter@Usince@views@analysis@herald@@U?$in_range@H@234@@views@analysis@herald@@U?$less_than@H@234@@views@analysis@herald@@U?$in_range@N@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@23@U4123@@Z@QEBA?A?<auto>@@AEAUFowlerBasic@distance@algorithms@23@@Z Line | Count | Source | 386 | 2 | std::visit([&run](auto&& arg) { | 387 | 2 | arg.beginRun(run); | 388 | 2 | // std::cout << "Beggining run " << run << std::endl; | 389 | 2 | }, agg); |
??$?RAEAUFowlerBasic@distance@algorithms@analysis@herald@@@<lambda_2>@?0???$?UU?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@U?$in_range@N@234@@views@23@@aggregates@analysis@herald@@YA?AU?$aggregate@UFowlerBasic@distance@algorithms@analysis@herald@@@123@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@U?$in_range@N@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@23@U4123@@Z@QEBA?A?<auto>@@AEAUFowlerBasic@distance@algorithms@23@@Z Line | Count | Source | 386 | 8 | std::visit([&run](auto&& arg) { | 387 | 8 | arg.beginRun(run); | 388 | 8 | // std::cout << "Beggining run " << run << std::endl; | 389 | 8 | }, agg); |
|
390 | 10 | } |
391 | 10 | |
392 | 54 | while (!from.ended()) { |
393 | 44 | auto& v = *from; |
394 | 44 | for (auto& agg : me.aggregates) { |
395 | 44 | std::visit([&v](auto&& arg) { |
396 | 44 | // std::cout << "Sample taken: " << v.taken.secondsSinceUnixEpoch() << std::endl; |
397 | 44 | arg.map(v); |
398 | 44 | }, agg); ??$?RAEAUFowlerBasic@distance@algorithms@analysis@herald@@@<lambda_3>@?0???$?UU?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$dual_filter@U?$dual_filter@Usince@views@analysis@herald@@U?$in_range@H@234@@views@analysis@herald@@U?$less_than@H@234@@views@analysis@herald@@U?$in_range@N@234@@views@23@@aggregates@analysis@herald@@YA?AU?$aggregate@UFowlerBasic@distance@algorithms@analysis@herald@@@123@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$dual_filter@U?$dual_filter@Usince@views@analysis@herald@@U?$in_range@H@234@@views@analysis@herald@@U?$less_than@H@234@@views@analysis@herald@@U?$in_range@N@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@23@U4123@@Z@QEBA?A?<auto>@@AEAUFowlerBasic@distance@algorithms@23@@Z Line | Count | Source | 395 | 6 | std::visit([&v](auto&& arg) { | 396 | 6 | // std::cout << "Sample taken: " << v.taken.secondsSinceUnixEpoch() << std::endl; | 397 | 6 | arg.map(v); | 398 | 6 | }, agg); |
??$?RAEAUFowlerBasic@distance@algorithms@analysis@herald@@@<lambda_3>@?0???$?UU?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@U?$in_range@N@234@@views@23@@aggregates@analysis@herald@@YA?AU?$aggregate@UFowlerBasic@distance@algorithms@analysis@herald@@@123@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@U?$in_range@N@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@23@U4123@@Z@QEBA?A?<auto>@@AEAUFowlerBasic@distance@algorithms@23@@Z Line | Count | Source | 395 | 38 | std::visit([&v](auto&& arg) { | 396 | 38 | // std::cout << "Sample taken: " << v.taken.secondsSinceUnixEpoch() << std::endl; | 397 | 38 | arg.map(v); | 398 | 38 | }, agg); |
|
399 | 44 | } |
400 | 44 | ++from; |
401 | 44 | } |
402 | 10 | } |
403 | 10 | |
404 | 10 | // return me so we can then do get<Agg>() |
405 | 10 | return me; |
406 | 10 | } ??$?UU?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$dual_filter@U?$dual_filter@Usince@views@analysis@herald@@U?$in_range@H@234@@views@analysis@herald@@U?$less_than@H@234@@views@analysis@herald@@U?$in_range@N@234@@views@23@@aggregates@analysis@herald@@YA?AU?$aggregate@UFowlerBasic@distance@algorithms@analysis@herald@@@012@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$dual_filter@U?$dual_filter@Usince@views@analysis@herald@@U?$in_range@H@234@@views@analysis@herald@@U?$less_than@H@234@@views@analysis@herald@@U?$in_range@N@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@12@U3012@@Z Line | Count | Source | 372 | 2 | friend auto operator|(herald::analysis::views::filtered_iterator_proxy<Coll,Pred> from, aggregate<Aggs...> me) -> aggregate<Aggs...> { | 373 | 2 | // determine number of runs | 374 | 2 | int maxRuns = 1; | 375 | 2 | for (auto& agg : me.aggregates) { | 376 | 2 | std::visit([&maxRuns](auto&& arg) { | 377 | 2 | if (arg.runs > maxRuns) { | 378 | 2 | maxRuns = arg.runs; | 379 | 2 | } | 380 | 2 | }, agg); | 381 | 2 | } | 382 | 2 | | 383 | 2 | // loop over all incoming data, calling each aggregate each time | 384 | 4 | for (int run = 1;run <= maxRuns;run++2 ) { | 385 | 2 | for (auto& agg : me.aggregates) { | 386 | 2 | std::visit([&run](auto&& arg) { | 387 | 2 | arg.beginRun(run); | 388 | 2 | // std::cout << "Beggining run " << run << std::endl; | 389 | 2 | }, agg); | 390 | 2 | } | 391 | 2 | | 392 | 8 | while (!from.ended()) { | 393 | 6 | auto& v = *from; | 394 | 6 | for (auto& agg : me.aggregates) { | 395 | 6 | std::visit([&v](auto&& arg) { | 396 | 6 | // std::cout << "Sample taken: " << v.taken.secondsSinceUnixEpoch() << std::endl; | 397 | 6 | arg.map(v); | 398 | 6 | }, agg); | 399 | 6 | } | 400 | 6 | ++from; | 401 | 6 | } | 402 | 2 | } | 403 | 2 | | 404 | 2 | // return me so we can then do get<Agg>() | 405 | 2 | return me; | 406 | 2 | } |
??$?UU?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@U?$in_range@N@234@@views@23@@aggregates@analysis@herald@@YA?AU?$aggregate@UFowlerBasic@distance@algorithms@analysis@herald@@@012@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@U?$in_range@N@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@12@U3012@@Z Line | Count | Source | 372 | 8 | friend auto operator|(herald::analysis::views::filtered_iterator_proxy<Coll,Pred> from, aggregate<Aggs...> me) -> aggregate<Aggs...> { | 373 | 8 | // determine number of runs | 374 | 8 | int maxRuns = 1; | 375 | 8 | for (auto& agg : me.aggregates) { | 376 | 8 | std::visit([&maxRuns](auto&& arg) { | 377 | 8 | if (arg.runs > maxRuns) { | 378 | 8 | maxRuns = arg.runs; | 379 | 8 | } | 380 | 8 | }, agg); | 381 | 8 | } | 382 | 8 | | 383 | 8 | // loop over all incoming data, calling each aggregate each time | 384 | 16 | for (int run = 1;run <= maxRuns;run++8 ) { | 385 | 8 | for (auto& agg : me.aggregates) { | 386 | 8 | std::visit([&run](auto&& arg) { | 387 | 8 | arg.beginRun(run); | 388 | 8 | // std::cout << "Beggining run " << run << std::endl; | 389 | 8 | }, agg); | 390 | 8 | } | 391 | 8 | | 392 | 46 | while (!from.ended()) { | 393 | 38 | auto& v = *from; | 394 | 38 | for (auto& agg : me.aggregates) { | 395 | 38 | std::visit([&v](auto&& arg) { | 396 | 38 | // std::cout << "Sample taken: " << v.taken.secondsSinceUnixEpoch() << std::endl; | 397 | 38 | arg.map(v); | 398 | 38 | }, agg); | 399 | 38 | } | 400 | 38 | ++from; | 401 | 38 | } | 402 | 8 | } | 403 | 8 | | 404 | 8 | // return me so we can then do get<Agg>() | 405 | 8 | return me; | 406 | 8 | } |
|
407 | | |
408 | | template <typename ValT> |
409 | | friend auto operator|(herald::analysis::views::view<ValT> from, aggregate<Aggs...> me) -> aggregate<Aggs...> { |
410 | | // determine number of runs |
411 | | int maxRuns = 1; |
412 | | for (auto& agg : me.aggregates) { |
413 | | std::visit([&maxRuns](auto&& arg) { |
414 | | if (arg.runs > maxRuns) { |
415 | | maxRuns = arg.runs; |
416 | | } |
417 | | }, agg); |
418 | | } |
419 | | |
420 | | // loop over all incoming data, calling each aggregate each time |
421 | | for (int run = 1;run <= maxRuns;run++) { |
422 | | for (auto& agg : me.aggregates) { |
423 | | std::visit([&run](auto&& arg) { |
424 | | arg.beginRun(run); |
425 | | // std::cout << "Beggining run " << run << std::endl; |
426 | | }, agg); |
427 | | } |
428 | | |
429 | | for (auto& v : from) { |
430 | | for (auto& agg : me.aggregates) { |
431 | | std::visit([&v](auto&& arg) { |
432 | | // std::cout << "Sample taken: " << v.taken.secondsSinceUnixEpoch() << std::endl; |
433 | | arg.map(v); |
434 | | }, agg); |
435 | | } |
436 | | } |
437 | | } |
438 | | |
439 | | // return me so we can then do get<Agg>() |
440 | | return me; |
441 | | } |
442 | | |
443 | | template <typename Agg> |
444 | 21 | Agg& get() { |
445 | 21 | Agg& retval = std::get<0>(aggregates.front()); |
446 | 21 | for (auto& agg : aggregates) { |
447 | 21 | // See https://en.cppreference.com/w/cpp/utility/variant/visit |
448 | 21 | std::visit([&retval](auto&& arg) { |
449 | 21 | using T = std::decay_t<decltype(arg)>; |
450 | 21 | if constexpr (std::is_same_v<Agg,T>) { |
451 | 21 | retval = arg; |
452 | 21 | } |
453 | 21 | }, agg); ??$?RAEAUFowlerBasic@distance@algorithms@analysis@herald@@@<lambda_1>@?0???$get@UFowlerBasic@distance@algorithms@analysis@herald@@@?$aggregate@UFowlerBasic@distance@algorithms@analysis@herald@@@aggregates@analysis@herald@@QEAAAEAUFowlerBasic@distance@algorithms@34@XZ@QEBA?A?<auto>@@AEAU56734@@Z Line | Count | Source | 448 | 10 | std::visit([&retval](auto&& arg) { | 449 | 10 | using T = std::decay_t<decltype(arg)>; | 450 | 10 | if constexpr (std::is_same_v<Agg,T>) { | 451 | 10 | retval = arg; | 452 | 10 | } | 453 | 10 | }, agg); |
??$?RAEAURiskAggregationBasic@risk@algorithms@analysis@herald@@@<lambda_1>@?0???$get@URiskAggregationBasic@risk@algorithms@analysis@herald@@@?$aggregate@URiskAggregationBasic@risk@algorithms@analysis@herald@@@aggregates@analysis@herald@@QEAAAEAURiskAggregationBasic@risk@algorithms@34@XZ@QEBA?A?<auto>@@AEAU56734@@Z Line | Count | Source | 448 | 11 | std::visit([&retval](auto&& arg) { | 449 | 11 | using T = std::decay_t<decltype(arg)>; | 450 | 11 | if constexpr (std::is_same_v<Agg,T>) { | 451 | 11 | retval = arg; | 452 | 11 | } | 453 | 11 | }, agg); |
|
454 | 21 | } |
455 | 21 | return retval; |
456 | 21 | } ??$get@UFowlerBasic@distance@algorithms@analysis@herald@@@?$aggregate@UFowlerBasic@distance@algorithms@analysis@herald@@@aggregates@analysis@herald@@QEAAAEAUFowlerBasic@distance@algorithms@23@XZ Line | Count | Source | 444 | 10 | Agg& get() { | 445 | 10 | Agg& retval = std::get<0>(aggregates.front()); | 446 | 10 | for (auto& agg : aggregates) { | 447 | 10 | // See https://en.cppreference.com/w/cpp/utility/variant/visit | 448 | 10 | std::visit([&retval](auto&& arg) { | 449 | 10 | using T = std::decay_t<decltype(arg)>; | 450 | 10 | if constexpr (std::is_same_v<Agg,T>) { | 451 | 10 | retval = arg; | 452 | 10 | } | 453 | 10 | }, agg); | 454 | 10 | } | 455 | 10 | return retval; | 456 | 10 | } |
??$get@URiskAggregationBasic@risk@algorithms@analysis@herald@@@?$aggregate@URiskAggregationBasic@risk@algorithms@analysis@herald@@@aggregates@analysis@herald@@QEAAAEAURiskAggregationBasic@risk@algorithms@23@XZ Line | Count | Source | 444 | 11 | Agg& get() { | 445 | 11 | Agg& retval = std::get<0>(aggregates.front()); | 446 | 11 | for (auto& agg : aggregates) { | 447 | 11 | // See https://en.cppreference.com/w/cpp/utility/variant/visit | 448 | 11 | std::visit([&retval](auto&& arg) { | 449 | 11 | using T = std::decay_t<decltype(arg)>; | 450 | 11 | if constexpr (std::is_same_v<Agg,T>) { | 451 | 11 | retval = arg; | 452 | 11 | } | 453 | 11 | }, agg); | 454 | 11 | } | 455 | 11 | return retval; | 456 | 11 | } |
|
457 | | |
458 | | private: |
459 | | std::vector<std::variant<Aggs...>> aggregates; |
460 | | |
461 | | template <typename Last> |
462 | 11 | void addAggregate(Last last) { |
463 | 11 | aggregates.emplace_back(std::move(last)); |
464 | 11 | } ??$addAggregate@UFowlerBasic@distance@algorithms@analysis@herald@@@?$aggregate@UFowlerBasic@distance@algorithms@analysis@herald@@@aggregates@analysis@herald@@AEAAXUFowlerBasic@distance@algorithms@23@@Z Line | Count | Source | 462 | 10 | void addAggregate(Last last) { | 463 | 10 | aggregates.emplace_back(std::move(last)); | 464 | 10 | } |
??$addAggregate@URiskAggregationBasic@risk@algorithms@analysis@herald@@@?$aggregate@URiskAggregationBasic@risk@algorithms@analysis@herald@@@aggregates@analysis@herald@@AEAAXURiskAggregationBasic@risk@algorithms@23@@Z Line | Count | Source | 462 | 1 | void addAggregate(Last last) { | 463 | 1 | aggregates.emplace_back(std::move(last)); | 464 | 1 | } |
|
465 | | |
466 | | template <typename First, typename Second, typename... Remaining> |
467 | | void addAggregate(First first, Second second, Remaining... remaining) { |
468 | | aggregates.emplace_back(std::move(first)); |
469 | | addAggregate<Second, Remaining...>(second, remaining...); |
470 | | } |
471 | | }; |
472 | | |
473 | | |
474 | | |
475 | | |
476 | | |
477 | | |
478 | | |
479 | | |
480 | | /// A specialised aggregation that doesn't require pre-defining or |
481 | | /// parameterising the aggregation classes being used. |
482 | | /// This is a convenience version of aggregate |
483 | | template <typename... Aggs> |
484 | | struct summarise { |
485 | 12 | summarise() : aggregates() { |
486 | 12 | // Initialise members of aggregates, one per aggregate type requested |
487 | 12 | addAggregate<Aggs...>(); |
488 | 12 | } ??0?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@aggregates@analysis@herald@@QEAA@XZ Line | Count | Source | 485 | 3 | summarise() : aggregates() { | 486 | 3 | // Initialise members of aggregates, one per aggregate type requested | 487 | 3 | addAggregate<Aggs...>(); | 488 | 3 | } |
??0?$summarise@UCount@aggregates@analysis@herald@@UMode@234@UVariance@234@@aggregates@analysis@herald@@QEAA@XZ Line | Count | Source | 485 | 9 | summarise() : aggregates() { | 486 | 9 | // Initialise members of aggregates, one per aggregate type requested | 487 | 9 | addAggregate<Aggs...>(); | 488 | 9 | } |
|
489 | 24 | ~summarise() = default; ??1?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@aggregates@analysis@herald@@QEAA@XZ Line | Count | Source | 489 | 6 | ~summarise() = default; |
??1?$summarise@UCount@aggregates@analysis@herald@@UMode@234@UVariance@234@@aggregates@analysis@herald@@QEAA@XZ Line | Count | Source | 489 | 18 | ~summarise() = default; |
|
490 | | |
491 | | template <typename ValT> |
492 | 12 | friend auto operator|(herald::analysis::views::view<ValT>& from, summarise<Aggs...> me) -> summarise<Aggs...> { |
493 | 12 | // determine number of runs |
494 | 12 | int maxRuns = 1; |
495 | 36 | for (auto& agg : me.aggregates) { |
496 | 36 | std::visit([&maxRuns](auto&& arg) { |
497 | 36 | if (arg.runs > maxRuns) { |
498 | 12 | maxRuns = arg.runs; |
499 | 12 | } |
500 | 36 | }, agg); ??$?RAEAUMean@aggregates@analysis@herald@@@<lambda_1>@?0???$?UU?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@@aggregates@analysis@herald@@YA?AU?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@123@AEAU?$view@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@sampling@34@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@634@_K@views@23@U4123@@Z@QEBA?A?<auto>@@AEAUMean@123@@Z Line | Count | Source | 496 | 1 | std::visit([&maxRuns](auto&& arg) { | 497 | 1 | if (arg.runs > maxRuns) { | 498 | 0 | maxRuns = arg.runs; | 499 | 0 | } | 500 | 1 | }, agg); |
??$?RAEAUMode@aggregates@analysis@herald@@@<lambda_1>@?0???$?UU?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@@aggregates@analysis@herald@@YA?AU?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@123@AEAU?$view@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@sampling@34@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@634@_K@views@23@U4123@@Z@QEBA?A?<auto>@@AEAUMode@123@@Z Line | Count | Source | 496 | 1 | std::visit([&maxRuns](auto&& arg) { | 497 | 1 | if (arg.runs > maxRuns) { | 498 | 0 | maxRuns = arg.runs; | 499 | 0 | } | 500 | 1 | }, agg); |
??$?RAEAUVariance@aggregates@analysis@herald@@@<lambda_1>@?0???$?UU?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@@aggregates@analysis@herald@@YA?AU?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@123@AEAU?$view@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@sampling@34@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@634@_K@views@23@U4123@@Z@QEBA?A?<auto>@@AEAUVariance@123@@Z Line | Count | Source | 496 | 1 | std::visit([&maxRuns](auto&& arg) { | 497 | 1 | if (arg.runs > maxRuns) { | 498 | 1 | maxRuns = arg.runs; | 499 | 1 | } | 500 | 1 | }, agg); |
??$?RAEAUMean@aggregates@analysis@herald@@@<lambda_1>@?0???$?UU?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$dual_filter@Usince@views@analysis@herald@@U?$in_range@H@234@@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@@aggregates@analysis@herald@@YA?AU?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@123@AEAU?$view@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$dual_filter@Usince@views@analysis@herald@@U?$in_range@H@234@@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@sampling@34@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@634@_K@views@23@U4123@@Z@QEBA?A?<auto>@@AEAUMean@123@@Z Line | Count | Source | 496 | 2 | std::visit([&maxRuns](auto&& arg) { | 497 | 2 | if (arg.runs > maxRuns) { | 498 | 0 | maxRuns = arg.runs; | 499 | 0 | } | 500 | 2 | }, agg); |
??$?RAEAUMode@aggregates@analysis@herald@@@<lambda_1>@?0???$?UU?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$dual_filter@Usince@views@analysis@herald@@U?$in_range@H@234@@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@@aggregates@analysis@herald@@YA?AU?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@123@AEAU?$view@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$dual_filter@Usince@views@analysis@herald@@U?$in_range@H@234@@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@sampling@34@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@634@_K@views@23@U4123@@Z@QEBA?A?<auto>@@AEAUMode@123@@Z Line | Count | Source | 496 | 2 | std::visit([&maxRuns](auto&& arg) { | 497 | 2 | if (arg.runs > maxRuns) { | 498 | 0 | maxRuns = arg.runs; | 499 | 0 | } | 500 | 2 | }, agg); |
??$?RAEAUVariance@aggregates@analysis@herald@@@<lambda_1>@?0???$?UU?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$dual_filter@Usince@views@analysis@herald@@U?$in_range@H@234@@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@@aggregates@analysis@herald@@YA?AU?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@123@AEAU?$view@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$dual_filter@Usince@views@analysis@herald@@U?$in_range@H@234@@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@sampling@34@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@634@_K@views@23@U4123@@Z@QEBA?A?<auto>@@AEAUVariance@123@@Z Line | Count | Source | 496 | 2 | std::visit([&maxRuns](auto&& arg) { | 497 | 2 | if (arg.runs > maxRuns) { | 498 | 2 | maxRuns = arg.runs; | 499 | 2 | } | 500 | 2 | }, agg); |
??$?RAEAUCount@aggregates@analysis@herald@@@<lambda_1>@?0???$?UU?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@Usince@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@@aggregates@analysis@herald@@YA?AU?$summarise@UCount@aggregates@analysis@herald@@UMode@234@UVariance@234@@123@AEAU?$view@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@Usince@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@sampling@34@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@634@_K@views@23@U4123@@Z@QEBA?A?<auto>@@AEAUCount@123@@Z Line | Count | Source | 496 | 9 | std::visit([&maxRuns](auto&& arg) { | 497 | 9 | if (arg.runs > maxRuns) { | 498 | 0 | maxRuns = arg.runs; | 499 | 0 | } | 500 | 9 | }, agg); |
??$?RAEAUMode@aggregates@analysis@herald@@@<lambda_1>@?0???$?UU?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@Usince@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@@aggregates@analysis@herald@@YA?AU?$summarise@UCount@aggregates@analysis@herald@@UMode@234@UVariance@234@@123@AEAU?$view@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@Usince@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@sampling@34@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@634@_K@views@23@U4123@@Z@QEBA?A?<auto>@@AEAUMode@123@@Z Line | Count | Source | 496 | 9 | std::visit([&maxRuns](auto&& arg) { | 497 | 9 | if (arg.runs > maxRuns) { | 498 | 0 | maxRuns = arg.runs; | 499 | 0 | } | 500 | 9 | }, agg); |
??$?RAEAUVariance@aggregates@analysis@herald@@@<lambda_1>@?0???$?UU?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@Usince@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@@aggregates@analysis@herald@@YA?AU?$summarise@UCount@aggregates@analysis@herald@@UMode@234@UVariance@234@@123@AEAU?$view@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@Usince@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@sampling@34@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@634@_K@views@23@U4123@@Z@QEBA?A?<auto>@@AEAUVariance@123@@Z Line | Count | Source | 496 | 9 | std::visit([&maxRuns](auto&& arg) { | 497 | 9 | if (arg.runs > maxRuns) { | 498 | 9 | maxRuns = arg.runs; | 499 | 9 | } | 500 | 9 | }, agg); |
|
501 | 36 | } |
502 | 12 | |
503 | 12 | // loop over all incoming data, calling each aggregate each time |
504 | 36 | for (int run = 1;run <= maxRuns;run++24 ) { |
505 | 72 | for (auto& agg : me.aggregates) { |
506 | 72 | std::visit([&run](auto&& arg) { |
507 | 72 | arg.beginRun(run); |
508 | 72 | }, agg); ??$?RAEAUMean@aggregates@analysis@herald@@@<lambda_2>@?0???$?UU?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@@aggregates@analysis@herald@@YA?AU?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@123@AEAU?$view@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@sampling@34@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@634@_K@views@23@U4123@@Z@QEBA?A?<auto>@@AEAUMean@123@@Z Line | Count | Source | 506 | 2 | std::visit([&run](auto&& arg) { | 507 | 2 | arg.beginRun(run); | 508 | 2 | }, agg); |
??$?RAEAUMode@aggregates@analysis@herald@@@<lambda_2>@?0???$?UU?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@@aggregates@analysis@herald@@YA?AU?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@123@AEAU?$view@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@sampling@34@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@634@_K@views@23@U4123@@Z@QEBA?A?<auto>@@AEAUMode@123@@Z Line | Count | Source | 506 | 2 | std::visit([&run](auto&& arg) { | 507 | 2 | arg.beginRun(run); | 508 | 2 | }, agg); |
??$?RAEAUVariance@aggregates@analysis@herald@@@<lambda_2>@?0???$?UU?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@@aggregates@analysis@herald@@YA?AU?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@123@AEAU?$view@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@sampling@34@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@634@_K@views@23@U4123@@Z@QEBA?A?<auto>@@AEAUVariance@123@@Z Line | Count | Source | 506 | 2 | std::visit([&run](auto&& arg) { | 507 | 2 | arg.beginRun(run); | 508 | 2 | }, agg); |
??$?RAEAUMean@aggregates@analysis@herald@@@<lambda_2>@?0???$?UU?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$dual_filter@Usince@views@analysis@herald@@U?$in_range@H@234@@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@@aggregates@analysis@herald@@YA?AU?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@123@AEAU?$view@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$dual_filter@Usince@views@analysis@herald@@U?$in_range@H@234@@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@sampling@34@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@634@_K@views@23@U4123@@Z@QEBA?A?<auto>@@AEAUMean@123@@Z Line | Count | Source | 506 | 4 | std::visit([&run](auto&& arg) { | 507 | 4 | arg.beginRun(run); | 508 | 4 | }, agg); |
??$?RAEAUMode@aggregates@analysis@herald@@@<lambda_2>@?0???$?UU?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$dual_filter@Usince@views@analysis@herald@@U?$in_range@H@234@@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@@aggregates@analysis@herald@@YA?AU?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@123@AEAU?$view@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$dual_filter@Usince@views@analysis@herald@@U?$in_range@H@234@@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@sampling@34@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@634@_K@views@23@U4123@@Z@QEBA?A?<auto>@@AEAUMode@123@@Z Line | Count | Source | 506 | 4 | std::visit([&run](auto&& arg) { | 507 | 4 | arg.beginRun(run); | 508 | 4 | }, agg); |
??$?RAEAUVariance@aggregates@analysis@herald@@@<lambda_2>@?0???$?UU?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$dual_filter@Usince@views@analysis@herald@@U?$in_range@H@234@@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@@aggregates@analysis@herald@@YA?AU?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@123@AEAU?$view@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$dual_filter@Usince@views@analysis@herald@@U?$in_range@H@234@@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@sampling@34@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@634@_K@views@23@U4123@@Z@QEBA?A?<auto>@@AEAUVariance@123@@Z Line | Count | Source | 506 | 4 | std::visit([&run](auto&& arg) { | 507 | 4 | arg.beginRun(run); | 508 | 4 | }, agg); |
??$?RAEAUCount@aggregates@analysis@herald@@@<lambda_2>@?0???$?UU?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@Usince@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@@aggregates@analysis@herald@@YA?AU?$summarise@UCount@aggregates@analysis@herald@@UMode@234@UVariance@234@@123@AEAU?$view@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@Usince@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@sampling@34@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@634@_K@views@23@U4123@@Z@QEBA?A?<auto>@@AEAUCount@123@@Z Line | Count | Source | 506 | 18 | std::visit([&run](auto&& arg) { | 507 | 18 | arg.beginRun(run); | 508 | 18 | }, agg); |
??$?RAEAUMode@aggregates@analysis@herald@@@<lambda_2>@?0???$?UU?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@Usince@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@@aggregates@analysis@herald@@YA?AU?$summarise@UCount@aggregates@analysis@herald@@UMode@234@UVariance@234@@123@AEAU?$view@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@Usince@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@sampling@34@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@634@_K@views@23@U4123@@Z@QEBA?A?<auto>@@AEAUMode@123@@Z Line | Count | Source | 506 | 18 | std::visit([&run](auto&& arg) { | 507 | 18 | arg.beginRun(run); | 508 | 18 | }, agg); |
??$?RAEAUVariance@aggregates@analysis@herald@@@<lambda_2>@?0???$?UU?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@Usince@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@@aggregates@analysis@herald@@YA?AU?$summarise@UCount@aggregates@analysis@herald@@UMode@234@UVariance@234@@123@AEAU?$view@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@Usince@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@sampling@34@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@634@_K@views@23@U4123@@Z@QEBA?A?<auto>@@AEAUVariance@123@@Z Line | Count | Source | 506 | 18 | std::visit([&run](auto&& arg) { | 507 | 18 | arg.beginRun(run); | 508 | 18 | }, agg); |
|
509 | 72 | } |
510 | 24 | |
511 | 66 | for (auto& v : from) { |
512 | 198 | for (auto& agg : me.aggregates) { |
513 | 198 | std::visit([&v](auto&& arg) { |
514 | 198 | arg.map(v); |
515 | 198 | }, agg); ??$?RAEAUMean@aggregates@analysis@herald@@@<lambda_3>@?0???$?UU?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@@aggregates@analysis@herald@@YA?AU?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@123@AEAU?$view@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@sampling@34@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@634@_K@views@23@U4123@@Z@QEBA?A?<auto>@@AEAUMean@123@@Z Line | Count | Source | 513 | 8 | std::visit([&v](auto&& arg) { | 514 | 8 | arg.map(v); | 515 | 8 | }, agg); |
??$?RAEAUMode@aggregates@analysis@herald@@@<lambda_3>@?0???$?UU?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@@aggregates@analysis@herald@@YA?AU?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@123@AEAU?$view@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@sampling@34@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@634@_K@views@23@U4123@@Z@QEBA?A?<auto>@@AEAUMode@123@@Z Line | Count | Source | 513 | 8 | std::visit([&v](auto&& arg) { | 514 | 8 | arg.map(v); | 515 | 8 | }, agg); |
??$?RAEAUVariance@aggregates@analysis@herald@@@<lambda_3>@?0???$?UU?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@@aggregates@analysis@herald@@YA?AU?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@123@AEAU?$view@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@sampling@34@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@634@_K@views@23@U4123@@Z@QEBA?A?<auto>@@AEAUVariance@123@@Z Line | Count | Source | 513 | 8 | std::visit([&v](auto&& arg) { | 514 | 8 | arg.map(v); | 515 | 8 | }, agg); |
??$?RAEAUMean@aggregates@analysis@herald@@@<lambda_3>@?0???$?UU?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$dual_filter@Usince@views@analysis@herald@@U?$in_range@H@234@@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@@aggregates@analysis@herald@@YA?AU?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@123@AEAU?$view@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$dual_filter@Usince@views@analysis@herald@@U?$in_range@H@234@@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@sampling@34@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@634@_K@views@23@U4123@@Z@QEBA?A?<auto>@@AEAUMean@123@@Z Line | Count | Source | 513 | 12 | std::visit([&v](auto&& arg) { | 514 | 12 | arg.map(v); | 515 | 12 | }, agg); |
??$?RAEAUMode@aggregates@analysis@herald@@@<lambda_3>@?0???$?UU?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$dual_filter@Usince@views@analysis@herald@@U?$in_range@H@234@@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@@aggregates@analysis@herald@@YA?AU?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@123@AEAU?$view@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$dual_filter@Usince@views@analysis@herald@@U?$in_range@H@234@@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@sampling@34@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@634@_K@views@23@U4123@@Z@QEBA?A?<auto>@@AEAUMode@123@@Z Line | Count | Source | 513 | 12 | std::visit([&v](auto&& arg) { | 514 | 12 | arg.map(v); | 515 | 12 | }, agg); |
??$?RAEAUVariance@aggregates@analysis@herald@@@<lambda_3>@?0???$?UU?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$dual_filter@Usince@views@analysis@herald@@U?$in_range@H@234@@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@@aggregates@analysis@herald@@YA?AU?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@123@AEAU?$view@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$dual_filter@Usince@views@analysis@herald@@U?$in_range@H@234@@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@sampling@34@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@634@_K@views@23@U4123@@Z@QEBA?A?<auto>@@AEAUVariance@123@@Z Line | Count | Source | 513 | 12 | std::visit([&v](auto&& arg) { | 514 | 12 | arg.map(v); | 515 | 12 | }, agg); |
??$?RAEAUCount@aggregates@analysis@herald@@@<lambda_3>@?0???$?UU?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@Usince@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@@aggregates@analysis@herald@@YA?AU?$summarise@UCount@aggregates@analysis@herald@@UMode@234@UVariance@234@@123@AEAU?$view@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@Usince@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@sampling@34@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@634@_K@views@23@U4123@@Z@QEBA?A?<auto>@@AEAUCount@123@@Z Line | Count | Source | 513 | 46 | std::visit([&v](auto&& arg) { | 514 | 46 | arg.map(v); | 515 | 46 | }, agg); |
??$?RAEAUMode@aggregates@analysis@herald@@@<lambda_3>@?0???$?UU?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@Usince@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@@aggregates@analysis@herald@@YA?AU?$summarise@UCount@aggregates@analysis@herald@@UMode@234@UVariance@234@@123@AEAU?$view@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@Usince@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@sampling@34@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@634@_K@views@23@U4123@@Z@QEBA?A?<auto>@@AEAUMode@123@@Z Line | Count | Source | 513 | 46 | std::visit([&v](auto&& arg) { | 514 | 46 | arg.map(v); | 515 | 46 | }, agg); |
??$?RAEAUVariance@aggregates@analysis@herald@@@<lambda_3>@?0???$?UU?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@Usince@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@@aggregates@analysis@herald@@YA?AU?$summarise@UCount@aggregates@analysis@herald@@UMode@234@UVariance@234@@123@AEAU?$view@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@Usince@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@sampling@34@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@634@_K@views@23@U4123@@Z@QEBA?A?<auto>@@AEAUVariance@123@@Z Line | Count | Source | 513 | 46 | std::visit([&v](auto&& arg) { | 514 | 46 | arg.map(v); | 515 | 46 | }, agg); |
|
516 | 198 | } |
517 | 66 | } |
518 | 24 | } |
519 | 12 | |
520 | 12 | // return me so we can then do get<Agg>() |
521 | 12 | return me; |
522 | 12 | } ??$?UU?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@@aggregates@analysis@herald@@YA?AU?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@012@AEAU?$view@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@sampling@34@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@634@_K@views@12@U3012@@Z Line | Count | Source | 492 | 1 | friend auto operator|(herald::analysis::views::view<ValT>& from, summarise<Aggs...> me) -> summarise<Aggs...> { | 493 | 1 | // determine number of runs | 494 | 1 | int maxRuns = 1; | 495 | 3 | for (auto& agg : me.aggregates) { | 496 | 3 | std::visit([&maxRuns](auto&& arg) { | 497 | 3 | if (arg.runs > maxRuns) { | 498 | 3 | maxRuns = arg.runs; | 499 | 3 | } | 500 | 3 | }, agg); | 501 | 3 | } | 502 | 1 | | 503 | 1 | // loop over all incoming data, calling each aggregate each time | 504 | 3 | for (int run = 1;run <= maxRuns;run++2 ) { | 505 | 6 | for (auto& agg : me.aggregates) { | 506 | 6 | std::visit([&run](auto&& arg) { | 507 | 6 | arg.beginRun(run); | 508 | 6 | }, agg); | 509 | 6 | } | 510 | 2 | | 511 | 8 | for (auto& v : from) { | 512 | 24 | for (auto& agg : me.aggregates) { | 513 | 24 | std::visit([&v](auto&& arg) { | 514 | 24 | arg.map(v); | 515 | 24 | }, agg); | 516 | 24 | } | 517 | 8 | } | 518 | 2 | } | 519 | 1 | | 520 | 1 | // return me so we can then do get<Agg>() | 521 | 1 | return me; | 522 | 1 | } |
??$?UU?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$dual_filter@Usince@views@analysis@herald@@U?$in_range@H@234@@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@@aggregates@analysis@herald@@YA?AU?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@012@AEAU?$view@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$dual_filter@Usince@views@analysis@herald@@U?$in_range@H@234@@views@analysis@herald@@U?$less_than@H@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@sampling@34@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BE@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@634@_K@views@12@U3012@@Z Line | Count | Source | 492 | 2 | friend auto operator|(herald::analysis::views::view<ValT>& from, summarise<Aggs...> me) -> summarise<Aggs...> { | 493 | 2 | // determine number of runs | 494 | 2 | int maxRuns = 1; | 495 | 6 | for (auto& agg : me.aggregates) { | 496 | 6 | std::visit([&maxRuns](auto&& arg) { | 497 | 6 | if (arg.runs > maxRuns) { | 498 | 6 | maxRuns = arg.runs; | 499 | 6 | } | 500 | 6 | }, agg); | 501 | 6 | } | 502 | 2 | | 503 | 2 | // loop over all incoming data, calling each aggregate each time | 504 | 6 | for (int run = 1;run <= maxRuns;run++4 ) { | 505 | 12 | for (auto& agg : me.aggregates) { | 506 | 12 | std::visit([&run](auto&& arg) { | 507 | 12 | arg.beginRun(run); | 508 | 12 | }, agg); | 509 | 12 | } | 510 | 4 | | 511 | 12 | for (auto& v : from) { | 512 | 36 | for (auto& agg : me.aggregates) { | 513 | 36 | std::visit([&v](auto&& arg) { | 514 | 36 | arg.map(v); | 515 | 36 | }, agg); | 516 | 36 | } | 517 | 12 | } | 518 | 4 | } | 519 | 2 | | 520 | 2 | // return me so we can then do get<Agg>() | 521 | 2 | return me; | 522 | 2 | } |
??$?UU?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@Usince@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@@aggregates@analysis@herald@@YA?AU?$summarise@UCount@aggregates@analysis@herald@@UMode@234@UVariance@234@@012@AEAU?$view@U?$filtered_iterator_proxy@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$dual_filter@U?$in_range@H@views@analysis@herald@@Usince@234@@views@34@U?$Sample@VRSSI@datatype@herald@@@234@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@234@_K@views@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@sampling@34@U?$SampleIterator@U?$SampleList@U?$Sample@VRSSI@datatype@herald@@@sampling@analysis@herald@@$0BJ@VRSSI@datatype@4@@sampling@analysis@herald@@U?$Sample@VRSSI@datatype@herald@@@234@@634@_K@views@12@U3012@@Z Line | Count | Source | 492 | 9 | friend auto operator|(herald::analysis::views::view<ValT>& from, summarise<Aggs...> me) -> summarise<Aggs...> { | 493 | 9 | // determine number of runs | 494 | 9 | int maxRuns = 1; | 495 | 27 | for (auto& agg : me.aggregates) { | 496 | 27 | std::visit([&maxRuns](auto&& arg) { | 497 | 27 | if (arg.runs > maxRuns) { | 498 | 27 | maxRuns = arg.runs; | 499 | 27 | } | 500 | 27 | }, agg); | 501 | 27 | } | 502 | 9 | | 503 | 9 | // loop over all incoming data, calling each aggregate each time | 504 | 27 | for (int run = 1;run <= maxRuns;run++18 ) { | 505 | 54 | for (auto& agg : me.aggregates) { | 506 | 54 | std::visit([&run](auto&& arg) { | 507 | 54 | arg.beginRun(run); | 508 | 54 | }, agg); | 509 | 54 | } | 510 | 18 | | 511 | 46 | for (auto& v : from) { | 512 | 138 | for (auto& agg : me.aggregates) { | 513 | 138 | std::visit([&v](auto&& arg) { | 514 | 138 | arg.map(v); | 515 | 138 | }, agg); | 516 | 138 | } | 517 | 46 | } | 518 | 18 | } | 519 | 9 | | 520 | 9 | // return me so we can then do get<Agg>() | 521 | 9 | return me; | 522 | 9 | } |
|
523 | | |
524 | | template <typename Agg> |
525 | 34 | double get() { |
526 | 34 | double result = 0.0; |
527 | 102 | for (auto& agg : aggregates) { |
528 | 102 | // See https://en.cppreference.com/w/cpp/utility/variant/visit |
529 | 102 | std::visit([&result](auto&& arg) { |
530 | 102 | using T = std::decay_t<decltype(arg)>; |
531 | 102 | if constexpr (std::is_same_v<Agg,T>) {0 |
532 | 34 | result = arg.reduce(); |
533 | 34 | } |
534 | 102 | }, agg); ??$?RAEAUMean@aggregates@analysis@herald@@@<lambda_1>@?0???$get@UMean@aggregates@analysis@herald@@@?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@aggregates@analysis@herald@@QEAANXZ@QEBA?A?<auto>@@AEAUMean@234@@Z Line | Count | Source | 529 | 3 | std::visit([&result](auto&& arg) { | 530 | 3 | using T = std::decay_t<decltype(arg)>; | 531 | 3 | if constexpr (std::is_same_v<Agg,T>) { | 532 | 3 | result = arg.reduce(); | 533 | 3 | } | 534 | 3 | }, agg); |
??$?RAEAUMode@aggregates@analysis@herald@@@<lambda_1>@?0???$get@UMean@aggregates@analysis@herald@@@?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@aggregates@analysis@herald@@QEAANXZ@QEBA?A?<auto>@@AEAUMode@234@@Z Line | Count | Source | 529 | 3 | std::visit([&result](auto&& arg) { | 530 | 3 | using T = std::decay_t<decltype(arg)>; | 531 | 3 | if constexpr (std::is_same_v<Agg,T>) {0 | 532 | 3 | result = arg.reduce(); | 533 | 3 | } | 534 | 3 | }, agg); |
??$?RAEAUVariance@aggregates@analysis@herald@@@<lambda_1>@?0???$get@UMean@aggregates@analysis@herald@@@?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@aggregates@analysis@herald@@QEAANXZ@QEBA?A?<auto>@@AEAUVariance@234@@Z Line | Count | Source | 529 | 3 | std::visit([&result](auto&& arg) { | 530 | 3 | using T = std::decay_t<decltype(arg)>; | 531 | 3 | if constexpr (std::is_same_v<Agg,T>) {0 | 532 | 3 | result = arg.reduce(); | 533 | 3 | } | 534 | 3 | }, agg); |
??$?RAEAUMean@aggregates@analysis@herald@@@<lambda_1>@?0???$get@UMode@aggregates@analysis@herald@@@?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@aggregates@analysis@herald@@QEAANXZ@QEBA?A?<auto>@@AEAUMean@234@@Z Line | Count | Source | 529 | 3 | std::visit([&result](auto&& arg) { | 530 | 3 | using T = std::decay_t<decltype(arg)>; | 531 | 3 | if constexpr (std::is_same_v<Agg,T>) {0 | 532 | 3 | result = arg.reduce(); | 533 | 3 | } | 534 | 3 | }, agg); |
??$?RAEAUMode@aggregates@analysis@herald@@@<lambda_1>@?0???$get@UMode@aggregates@analysis@herald@@@?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@aggregates@analysis@herald@@QEAANXZ@QEBA?A?<auto>@@AEAUMode@234@@Z Line | Count | Source | 529 | 3 | std::visit([&result](auto&& arg) { | 530 | 3 | using T = std::decay_t<decltype(arg)>; | 531 | 3 | if constexpr (std::is_same_v<Agg,T>) { | 532 | 3 | result = arg.reduce(); | 533 | 3 | } | 534 | 3 | }, agg); |
??$?RAEAUVariance@aggregates@analysis@herald@@@<lambda_1>@?0???$get@UMode@aggregates@analysis@herald@@@?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@aggregates@analysis@herald@@QEAANXZ@QEBA?A?<auto>@@AEAUVariance@234@@Z Line | Count | Source | 529 | 3 | std::visit([&result](auto&& arg) { | 530 | 3 | using T = std::decay_t<decltype(arg)>; | 531 | 3 | if constexpr (std::is_same_v<Agg,T>) {0 | 532 | 3 | result = arg.reduce(); | 533 | 3 | } | 534 | 3 | }, agg); |
??$?RAEAUMean@aggregates@analysis@herald@@@<lambda_1>@?0???$get@UVariance@aggregates@analysis@herald@@@?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@aggregates@analysis@herald@@QEAANXZ@QEBA?A?<auto>@@AEAUMean@234@@Z Line | Count | Source | 529 | 3 | std::visit([&result](auto&& arg) { | 530 | 3 | using T = std::decay_t<decltype(arg)>; | 531 | 3 | if constexpr (std::is_same_v<Agg,T>) {0 | 532 | 3 | result = arg.reduce(); | 533 | 3 | } | 534 | 3 | }, agg); |
??$?RAEAUMode@aggregates@analysis@herald@@@<lambda_1>@?0???$get@UVariance@aggregates@analysis@herald@@@?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@aggregates@analysis@herald@@QEAANXZ@QEBA?A?<auto>@@AEAUMode@234@@Z Line | Count | Source | 529 | 3 | std::visit([&result](auto&& arg) { | 530 | 3 | using T = std::decay_t<decltype(arg)>; | 531 | 3 | if constexpr (std::is_same_v<Agg,T>) {0 | 532 | 3 | result = arg.reduce(); | 533 | 3 | } | 534 | 3 | }, agg); |
??$?RAEAUVariance@aggregates@analysis@herald@@@<lambda_1>@?0???$get@UVariance@aggregates@analysis@herald@@@?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@aggregates@analysis@herald@@QEAANXZ@QEBA?A?<auto>@@AEAUVariance@234@@Z Line | Count | Source | 529 | 3 | std::visit([&result](auto&& arg) { | 530 | 3 | using T = std::decay_t<decltype(arg)>; | 531 | 3 | if constexpr (std::is_same_v<Agg,T>) { | 532 | 3 | result = arg.reduce(); | 533 | 3 | } | 534 | 3 | }, agg); |
??$?RAEAUCount@aggregates@analysis@herald@@@<lambda_1>@?0???$get@UCount@aggregates@analysis@herald@@@?$summarise@UCount@aggregates@analysis@herald@@UMode@234@UVariance@234@@aggregates@analysis@herald@@QEAANXZ@QEBA?A?<auto>@@AEAUCount@234@@Z Line | Count | Source | 529 | 9 | std::visit([&result](auto&& arg) { | 530 | 9 | using T = std::decay_t<decltype(arg)>; | 531 | 9 | if constexpr (std::is_same_v<Agg,T>) { | 532 | 9 | result = arg.reduce(); | 533 | 9 | } | 534 | 9 | }, agg); |
??$?RAEAUMode@aggregates@analysis@herald@@@<lambda_1>@?0???$get@UCount@aggregates@analysis@herald@@@?$summarise@UCount@aggregates@analysis@herald@@UMode@234@UVariance@234@@aggregates@analysis@herald@@QEAANXZ@QEBA?A?<auto>@@AEAUMode@234@@Z Line | Count | Source | 529 | 9 | std::visit([&result](auto&& arg) { | 530 | 9 | using T = std::decay_t<decltype(arg)>; | 531 | 9 | if constexpr (std::is_same_v<Agg,T>) {0 | 532 | 9 | result = arg.reduce(); | 533 | 9 | } | 534 | 9 | }, agg); |
??$?RAEAUVariance@aggregates@analysis@herald@@@<lambda_1>@?0???$get@UCount@aggregates@analysis@herald@@@?$summarise@UCount@aggregates@analysis@herald@@UMode@234@UVariance@234@@aggregates@analysis@herald@@QEAANXZ@QEBA?A?<auto>@@AEAUVariance@234@@Z Line | Count | Source | 529 | 9 | std::visit([&result](auto&& arg) { | 530 | 9 | using T = std::decay_t<decltype(arg)>; | 531 | 9 | if constexpr (std::is_same_v<Agg,T>) {0 | 532 | 9 | result = arg.reduce(); | 533 | 9 | } | 534 | 9 | }, agg); |
??$?RAEAUCount@aggregates@analysis@herald@@@<lambda_1>@?0???$get@UMode@aggregates@analysis@herald@@@?$summarise@UCount@aggregates@analysis@herald@@UMode@234@UVariance@234@@aggregates@analysis@herald@@QEAANXZ@QEBA?A?<auto>@@AEAUCount@234@@Z Line | Count | Source | 529 | 8 | std::visit([&result](auto&& arg) { | 530 | 8 | using T = std::decay_t<decltype(arg)>; | 531 | 8 | if constexpr (std::is_same_v<Agg,T>) {0 | 532 | 8 | result = arg.reduce(); | 533 | 8 | } | 534 | 8 | }, agg); |
??$?RAEAUMode@aggregates@analysis@herald@@@<lambda_1>@?0???$get@UMode@aggregates@analysis@herald@@@?$summarise@UCount@aggregates@analysis@herald@@UMode@234@UVariance@234@@aggregates@analysis@herald@@QEAANXZ@QEBA?A?<auto>@@AEAUMode@234@@Z Line | Count | Source | 529 | 8 | std::visit([&result](auto&& arg) { | 530 | 8 | using T = std::decay_t<decltype(arg)>; | 531 | 8 | if constexpr (std::is_same_v<Agg,T>) { | 532 | 8 | result = arg.reduce(); | 533 | 8 | } | 534 | 8 | }, agg); |
??$?RAEAUVariance@aggregates@analysis@herald@@@<lambda_1>@?0???$get@UMode@aggregates@analysis@herald@@@?$summarise@UCount@aggregates@analysis@herald@@UMode@234@UVariance@234@@aggregates@analysis@herald@@QEAANXZ@QEBA?A?<auto>@@AEAUVariance@234@@Z Line | Count | Source | 529 | 8 | std::visit([&result](auto&& arg) { | 530 | 8 | using T = std::decay_t<decltype(arg)>; | 531 | 8 | if constexpr (std::is_same_v<Agg,T>) {0 | 532 | 8 | result = arg.reduce(); | 533 | 8 | } | 534 | 8 | }, agg); |
??$?RAEAUCount@aggregates@analysis@herald@@@<lambda_1>@?0???$get@UVariance@aggregates@analysis@herald@@@?$summarise@UCount@aggregates@analysis@herald@@UMode@234@UVariance@234@@aggregates@analysis@herald@@QEAANXZ@QEBA?A?<auto>@@AEAUCount@234@@Z Line | Count | Source | 529 | 8 | std::visit([&result](auto&& arg) { | 530 | 8 | using T = std::decay_t<decltype(arg)>; | 531 | 8 | if constexpr (std::is_same_v<Agg,T>) {0 | 532 | 8 | result = arg.reduce(); | 533 | 8 | } | 534 | 8 | }, agg); |
??$?RAEAUMode@aggregates@analysis@herald@@@<lambda_1>@?0???$get@UVariance@aggregates@analysis@herald@@@?$summarise@UCount@aggregates@analysis@herald@@UMode@234@UVariance@234@@aggregates@analysis@herald@@QEAANXZ@QEBA?A?<auto>@@AEAUMode@234@@Z Line | Count | Source | 529 | 8 | std::visit([&result](auto&& arg) { | 530 | 8 | using T = std::decay_t<decltype(arg)>; | 531 | 8 | if constexpr (std::is_same_v<Agg,T>) {0 | 532 | 8 | result = arg.reduce(); | 533 | 8 | } | 534 | 8 | }, agg); |
??$?RAEAUVariance@aggregates@analysis@herald@@@<lambda_1>@?0???$get@UVariance@aggregates@analysis@herald@@@?$summarise@UCount@aggregates@analysis@herald@@UMode@234@UVariance@234@@aggregates@analysis@herald@@QEAANXZ@QEBA?A?<auto>@@AEAUVariance@234@@Z Line | Count | Source | 529 | 8 | std::visit([&result](auto&& arg) { | 530 | 8 | using T = std::decay_t<decltype(arg)>; | 531 | 8 | if constexpr (std::is_same_v<Agg,T>) { | 532 | 8 | result = arg.reduce(); | 533 | 8 | } | 534 | 8 | }, agg); |
|
535 | 102 | } |
536 | 34 | return result; |
537 | 34 | } ??$get@UMean@aggregates@analysis@herald@@@?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@aggregates@analysis@herald@@QEAANXZ Line | Count | Source | 525 | 3 | double get() { | 526 | 3 | double result = 0.0; | 527 | 9 | for (auto& agg : aggregates) { | 528 | 9 | // See https://en.cppreference.com/w/cpp/utility/variant/visit | 529 | 9 | std::visit([&result](auto&& arg) { | 530 | 9 | using T = std::decay_t<decltype(arg)>; | 531 | 9 | if constexpr (std::is_same_v<Agg,T>) { | 532 | 9 | result = arg.reduce(); | 533 | 9 | } | 534 | 9 | }, agg); | 535 | 9 | } | 536 | 3 | return result; | 537 | 3 | } |
??$get@UMode@aggregates@analysis@herald@@@?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@aggregates@analysis@herald@@QEAANXZ Line | Count | Source | 525 | 3 | double get() { | 526 | 3 | double result = 0.0; | 527 | 9 | for (auto& agg : aggregates) { | 528 | 9 | // See https://en.cppreference.com/w/cpp/utility/variant/visit | 529 | 9 | std::visit([&result](auto&& arg) { | 530 | 9 | using T = std::decay_t<decltype(arg)>; | 531 | 9 | if constexpr (std::is_same_v<Agg,T>) { | 532 | 9 | result = arg.reduce(); | 533 | 9 | } | 534 | 9 | }, agg); | 535 | 9 | } | 536 | 3 | return result; | 537 | 3 | } |
??$get@UVariance@aggregates@analysis@herald@@@?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@aggregates@analysis@herald@@QEAANXZ Line | Count | Source | 525 | 3 | double get() { | 526 | 3 | double result = 0.0; | 527 | 9 | for (auto& agg : aggregates) { | 528 | 9 | // See https://en.cppreference.com/w/cpp/utility/variant/visit | 529 | 9 | std::visit([&result](auto&& arg) { | 530 | 9 | using T = std::decay_t<decltype(arg)>; | 531 | 9 | if constexpr (std::is_same_v<Agg,T>) { | 532 | 9 | result = arg.reduce(); | 533 | 9 | } | 534 | 9 | }, agg); | 535 | 9 | } | 536 | 3 | return result; | 537 | 3 | } |
??$get@UCount@aggregates@analysis@herald@@@?$summarise@UCount@aggregates@analysis@herald@@UMode@234@UVariance@234@@aggregates@analysis@herald@@QEAANXZ Line | Count | Source | 525 | 9 | double get() { | 526 | 9 | double result = 0.0; | 527 | 27 | for (auto& agg : aggregates) { | 528 | 27 | // See https://en.cppreference.com/w/cpp/utility/variant/visit | 529 | 27 | std::visit([&result](auto&& arg) { | 530 | 27 | using T = std::decay_t<decltype(arg)>; | 531 | 27 | if constexpr (std::is_same_v<Agg,T>) { | 532 | 27 | result = arg.reduce(); | 533 | 27 | } | 534 | 27 | }, agg); | 535 | 27 | } | 536 | 9 | return result; | 537 | 9 | } |
??$get@UMode@aggregates@analysis@herald@@@?$summarise@UCount@aggregates@analysis@herald@@UMode@234@UVariance@234@@aggregates@analysis@herald@@QEAANXZ Line | Count | Source | 525 | 8 | double get() { | 526 | 8 | double result = 0.0; | 527 | 24 | for (auto& agg : aggregates) { | 528 | 24 | // See https://en.cppreference.com/w/cpp/utility/variant/visit | 529 | 24 | std::visit([&result](auto&& arg) { | 530 | 24 | using T = std::decay_t<decltype(arg)>; | 531 | 24 | if constexpr (std::is_same_v<Agg,T>) { | 532 | 24 | result = arg.reduce(); | 533 | 24 | } | 534 | 24 | }, agg); | 535 | 24 | } | 536 | 8 | return result; | 537 | 8 | } |
??$get@UVariance@aggregates@analysis@herald@@@?$summarise@UCount@aggregates@analysis@herald@@UMode@234@UVariance@234@@aggregates@analysis@herald@@QEAANXZ Line | Count | Source | 525 | 8 | double get() { | 526 | 8 | double result = 0.0; | 527 | 24 | for (auto& agg : aggregates) { | 528 | 24 | // See https://en.cppreference.com/w/cpp/utility/variant/visit | 529 | 24 | std::visit([&result](auto&& arg) { | 530 | 24 | using T = std::decay_t<decltype(arg)>; | 531 | 24 | if constexpr (std::is_same_v<Agg,T>) { | 532 | 24 | result = arg.reduce(); | 533 | 24 | } | 534 | 24 | }, agg); | 535 | 24 | } | 536 | 8 | return result; | 537 | 8 | } |
|
538 | | |
539 | | private: |
540 | | std::vector<std::variant<Aggs...>> aggregates; |
541 | | |
542 | | template <typename Last> |
543 | 12 | void addAggregate() { |
544 | 12 | aggregates.emplace_back(Last()); |
545 | 12 | } ??$addAggregate@UVariance@aggregates@analysis@herald@@@?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@aggregates@analysis@herald@@AEAAXXZ Line | Count | Source | 543 | 3 | void addAggregate() { | 544 | 3 | aggregates.emplace_back(Last()); | 545 | 3 | } |
??$addAggregate@UVariance@aggregates@analysis@herald@@@?$summarise@UCount@aggregates@analysis@herald@@UMode@234@UVariance@234@@aggregates@analysis@herald@@AEAAXXZ Line | Count | Source | 543 | 9 | void addAggregate() { | 544 | 9 | aggregates.emplace_back(Last()); | 545 | 9 | } |
|
546 | | |
547 | | template <typename First, typename Second, typename... Remaining> |
548 | 24 | void addAggregate() { |
549 | 24 | aggregates.emplace_back(First()); |
550 | 24 | addAggregate<Second, Remaining...>(); |
551 | 24 | } ??$addAggregate@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@aggregates@analysis@herald@@AEAAXXZ Line | Count | Source | 548 | 3 | void addAggregate() { | 549 | 3 | aggregates.emplace_back(First()); | 550 | 3 | addAggregate<Second, Remaining...>(); | 551 | 3 | } |
??$addAggregate@UMode@aggregates@analysis@herald@@UVariance@234@$$V@?$summarise@UMean@aggregates@analysis@herald@@UMode@234@UVariance@234@@aggregates@analysis@herald@@AEAAXXZ Line | Count | Source | 548 | 3 | void addAggregate() { | 549 | 3 | aggregates.emplace_back(First()); | 550 | 3 | addAggregate<Second, Remaining...>(); | 551 | 3 | } |
??$addAggregate@UCount@aggregates@analysis@herald@@UMode@234@UVariance@234@@?$summarise@UCount@aggregates@analysis@herald@@UMode@234@UVariance@234@@aggregates@analysis@herald@@AEAAXXZ Line | Count | Source | 548 | 9 | void addAggregate() { | 549 | 9 | aggregates.emplace_back(First()); | 550 | 9 | addAggregate<Second, Remaining...>(); | 551 | 9 | } |
??$addAggregate@UMode@aggregates@analysis@herald@@UVariance@234@$$V@?$summarise@UCount@aggregates@analysis@herald@@UMode@234@UVariance@234@@aggregates@analysis@herald@@AEAAXXZ Line | Count | Source | 548 | 9 | void addAggregate() { | 549 | 9 | aggregates.emplace_back(First()); | 550 | 9 | addAggregate<Second, Remaining...>(); | 551 | 9 | } |
|
552 | | }; |
553 | | |
554 | | |
555 | | } // end namespace aggregates |
556 | | } |
557 | | } |
558 | | |
559 | | #endif |